package org.easy.core.util;

import org.easy.core.function.Function;

import java.util.List;


public class PageUtil {

    /**
     * 分页执行给定的函数。
     *
     * @param list     要分页处理的列表
     * @param function 对每个分页中的元素执行的函数
     * @param <T>      列表元素的类型
     */
    public static <T> void pageExecute(List<T> list, int pageSize, Function<List<T>> function) {
        int page = list.size() / pageSize;

        for (int current = 0; current <= page; current++) {
            function.apply(list.subList(current * pageSize, Math.min((current + 1) * pageSize, list.size())));
        }
    }
}
